#include<iostream>
#include<cmath>
#include<cstring>
#include<vector>
#include<bitset>
int c[10][10000];
using namespace std;
void gray(int x)
{
    if(x==1) {c[1][1]=0,c[1][2]=1;return ;}
    gray(x-1);
    int n=1<<(x-1);
    for(int i=1;i<=n;i++)
    {
        c[x][i]=c[x-1][i];
        c[x][i+n]=c[x-1][n-i+1]+n;
    }
}
int  main()
{
    int n;cin>>n;
    gray(n);
    for(int i=1;i<=(1<<n);i++)
    {
        bitset<6> x(c[n][i]);
        for(int j=n-1;j>=0;j--)
        cout<<x[j];
        //cout<<x;
        cout<<" ";
    }
}